export default {
  methods:{
    // 支付
    async pay(order_number,successCallback,failCallBack){
      // 发送请求，获取需要的五个参数
      const res = await this.$axios.post('my/orders/req_unifiedorder',{
        order_number
      })

      // 调用mpvue.requestPayement 唤起微信支付
      // mpvue === wx  mpvue == a
      mpvue.requestPayment({
        timeStamp: res.data.message.pay.timeStamp,
        nonceStr: res.data.message.pay.nonceStr,
        package: res.data.message.pay.package,
        signType: res.data.message.pay.signType,
        paySign: res.data.message.pay.paySign,
        success: async res2 => { // 支付成功之后的处理
          // 调用后台的接口，更改订单的状态为已支付
          const res3 = await this.$axios.post('my/orders/chkOrder',{
            order_number
          })

          if (res3.data.meta.status === 200) {
            mpvue.showToast({
              title: '支付成功', //提示的内容,
              image: '/static/img/duigou.png', //图标,
              duration: 2000, //延迟时间,
              mask: true, //显示透明蒙层，防止触摸穿透,
              success: res => {}
            })

            successCallback && successCallback()
          }
        },
        fail: ({errMsg}) => { // 支付失败之后的处理
          if (errMsg === "requestPayment:fail cancel"){
            mpvue.showToast({
              title: '您取消的了支付', //提示的内容,
              image: '/static/img/error2.png', //图标,
              duration: 2000, //延迟时间,
              mask: true, //显示透明蒙层，防止触摸穿透
            })
          } else {
            mpvue.showToast({
              title: '支付失败', //提示的内容,
              image: '/static/img/error2.png', //图标,
              duration: 2000, //延迟时间,
              mask: true, //显示透明蒙层，防止触摸穿透
            })
          }

          failCallBack && failCallBack()
        }
      })
    }
  }
}
